import PyInstaller.__main__

PyInstaller.__main__.run([
    'main.py',
    '--name=消息预警系统',
    '--onedir',  # 创建一个目录包含可执行文件和依赖
    '--windowed',  # 不显示控制台窗口
    # '--icon=resources/icon.ico',  # 暂时不添加图标
    '--add-data=resources/sounds;resources/sounds',  # 添加声音资源
    '--add-data=resources/styles.qss;resources',  # 添加样式文件
    # 基础依赖
    '--hidden-import=PyQt5',
    '--hidden-import=pygame',
    '--hidden-import=flask',
    # 多进程相关依赖
    '--hidden-import=multiprocessing',
    '--hidden-import=multiprocessing.spawn',
    '--hidden-import=multiprocessing.synchronize',
    '--hidden-import=multiprocessing.queues',
    '--hidden-import=multiprocessing.shared_memory',
    '--hidden-import=multiprocessing.context',
    # Windows相关依赖
    '--hidden-import=win32api',
    '--hidden-import=win32event',
    '--hidden-import=winerror',
    # Flask和Werkzeug相关依赖
    '--hidden-import=werkzeug',
    '--hidden-import=werkzeug.serving',
    '--hidden-import=werkzeug.debug',
    '--hidden-import=werkzeug.middleware',
    '--hidden-import=werkzeug.local',
    '--hidden-import=werkzeug.security',
    '--hidden-import=werkzeug.exceptions',
    '--hidden-import=flask.json',
    '--hidden-import=flask.json.provider',
    '--hidden-import=flask_cors',
    # 项目模块
    '--hidden-import=core',
    '--hidden-import=core.audio_player',
    '--hidden-import=core.monitor',
    '--hidden-import=core.port_scanner',
    '--hidden-import=core.web_server',
    '--hidden-import=core.freeze_support',
    '--hidden-import=ui',
    '--hidden-import=ui.main_window',
    '--hidden-import=ui.widgets',
    '--hidden-import=ui.widgets.log_viewer',
    '--hidden-import=ui.widgets.port_scan_dialog',
    '--hidden-import=ui.widgets.qr_dialog',
    '--hidden-import=utils',
    '--hidden-import=utils.logger',
    # 打包配置
    '--clean',  # 清理临时文件
    '--noconfirm',  # 覆盖输出目录
    # 调试信息 - 如果需要调试可以开启
    # '--debug=all'
])
